lexer grammar CalcLexer;

options {
  language = Java;
}
@header  {
package PL.prac10;
}

BLANCO : (' '|'\t'|'\r\n'|'\n') {$channel = HIDDEN;};

MAS: '+';
MENOS: '-';
POR: '*';
ENTRE: '/';

APARENTESIS: ')';
CPARENTESIS: '(';

SEPARADOR: ';';

fragment MENOR: '<';
fragment MAYOR: '>';
fragment DISTINTO: '!';
IGUAL: '=';

OP_LOGICOS: (MENOR (IGUAL)?)| (MAYOR(IGUAL)?) | (IGUAL IGUAL) | (DISTINTO IGUAL);

fragment LETRA : ('a'..'z')| ('A'..'Z')|'_'; 
  IDENT: LETRA (DIGITO|LETRA)*;
fragment PUNTO: '.';
fragment DIGITO : '0'..'9'; 
NUMERO : (MENOS)? (DIGITO)+ (PUNTO DIGITO*)?;
